//
//  E7GCProtocol.h
//  e7engine
//
//  Created by cc on 12-3-13.
//  Copyright (c) 2012年 PalmGame. All rights reserved.
//

#ifndef e7engine_E7GCProtocol_h
#define e7engine_E7GCProtocol_h

// sea battle.

//////////////////////////////////////////////
// protocols.
typedef enum
{
    RECV_GC_ERROR = 0,

    RECV_GC_LOGIN,
    RECV_GC_START,

    RECV_GC_COUNT,

/////////////////////////

    SEND_GC_ERROR = 20,

    SEND_GC_LOGIN,
    SEND_GC_START,

    SEND_GC_COUNT,

/////////////////////////

    RECV_U_ERROR = 50,

    RECV_U_FIRE,
    RECV_U_RESULT,

    RECV_U_COUNT,

/////////////////////////

    SEND_U_ERROR = 150,

    SEND_U_FIRE,
    SEND_U_RESULT,

    SEND_U_COUNT,
} eProtocolID ;

typedef enum
{
    GR_ERROR = 0,
    GR_LOSE,
    GR_WIN,
    GR_COUNT,
} eGameResult ;

//////////////////////////////////////////////

typedef unsigned char MSGID ;

// base id.
typedef struct
{
    MSGID cMsgID ;
} sProtocolID ;

//////////////////////////////////////////////
//         RECV FROM GAME CENTER.           //
//////////////////////////////////////////////
// RECV_GC_LOGIN
typedef struct
{
    sProtocolID    mID ;
} sRecv_GC_Login ;

// RECV_GC_START
typedef struct
{
    sProtocolID    mID ;
} sRecv_GC_Start ;

//////////////////////////////////////////////

//////////////////////////////////////////////
//          SEND TO GAME CENTER.            //
//////////////////////////////////////////////
// SEND_GC_LOGIN
typedef struct
{
    sProtocolID    mID ;
} sSend_GC_Login ;

// SEND_GC_START
typedef struct
{
    sProtocolID    mID ;
} sSend_GC_Start ;

//////////////////////////////////////////////

//////////////////////////////////////////////
//            RECV FROM USER.               //
//////////////////////////////////////////////
// RECV_U_FIRE
typedef struct
{
    sProtocolID    mID ;
    int      nIndex ;
} sRecv_U_Fire ;

// RECV_U_RESULT
typedef struct
{
    sProtocolID       mID ;
    eGameResult eRes ;
} sRecv_U_Result ;

//////////////////////////////////////////////

//////////////////////////////////////////////
//             SEND TO USER.                //
//////////////////////////////////////////////
// SEND_U_FIRE
typedef struct
{
    sProtocolID    mID ;
    int      nIndex ;
} sSend_U_Fire ;

// SEND_U_RESULT
typedef struct
{
    sProtocolID       mID ;
    eGameResult eRes ;
} sSend_U_Result ;

//////////////////////////////////////////////

typedef void(*RecvMsgCallBack)(MSGID eid, void* buf) ;

#endif




















